package Coding.file;
import java.io.File;
import java.io.FileFilter;

/**
 * @author
 * @data 2022/8/22 20:17
 * 获取一个目录中的符合过滤条件的所有子项
 * 重载listFiles()方法
 * File[] listFiles(FileFilter filter)
 * 该方法要求传入一个文件过滤器,然后将满足过滤条件的所有子项返回
 * FileFilter是一个接口,所以不能直接去实例化,但是可以实例化子类
 */
public class ListFileFilter {

    public static void main(String[] args) {


        File file = new File(".");
        FileFilter filter = new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                String name = pathname.getName();
                System.out.println("正在过滤的名字" + name);
                boolean o = name.contains("o");
                return o;
            }
        };

        File[] subs = file.listFiles(filter);
        System.out.println("共有子项" + subs.length + "个");

        for (int i = 0; i < subs.length; i++) {
            System.out.println(subs[i].getName());
        }

    }
}
